#include <bits/stdc++.h>
using namespace std;
using ll = long long;
// https://www.nowcoder.com/practice/fcd30aac9c4f4028b23919a0c649824d?tpId=290&tqId=39833&ru=/exam/oj
//  ll n;
//  int main()
//  {
//      cin>>n;
//      //可以直接当成字符串读入，stoi()可以自动处理前导0
//      vector<int> digit;
//      while(n)
//      {
//        digit.push_back(n%10);
//        n/=10;
//      }
//      for(int i=0;i<digit.size();i++)
//      {
//          if(digit[i]%2==0)digit[i]=0;
//          else digit[i]=1;
//      }
//      while(!digit.empty()&&digit.back()==0)
//      {
//          digit.pop_back();
//      }
//      //忘记反转了
//      reverse(digit.begin(),digit.end());
//      if(!digit.empty())for(auto s:digit)cout<<s;
//      else cout<<0;
//      cout<<endl;
//      return 0;
//  }

// https://ac.nowcoder.com/acm/problem/205836
//  ll n,m;
//  int main()
//  {
//      ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//      cin>>n>>m;
//      // scanf("%lld%lld",&n,&m);
//      ll a[n][m];
//      ll row[n],col[m];//存储行的和和列的和
//      memset(row,0,sizeof(row));
//      memset(col,0,sizeof(col));
//      for(int i=0;i<n;i++)
//          for(int j=0;j<m;j++)
//          {
//              cin>>a[i][j];
//              row[i]+=a[i][j];
//              col[j]+=a[i][j];
//          }
//      for(int i=0;i<n;i++)
//      {
//          for(int j=0;j<m;j++)
//              // printf("%lld ",out[i][j]);
//              cout<<row[i]+col[j]-a[i][j]<<" ";
//          // printf("\n");
//          cout<<endl;
//      }
//      return 0;
//  }
//  ll n,k;

// int main()
// {
//     cin>>n>>k;
//     //前缀和
//     ll happy[n],shame[n];
//     //分开读入happy和shame
//     for(int i=0;i<n;i++)cin>>happy[i];
//     for(int i=0;i<n;i++)cin>>shame[i];
//     for(int i=0;i<n;i++)happy[i+1]+=happy[i];
//     for(int i=0;i<n;i++)shame[i+1]+=shame[i];
//     //滑动窗口
//     ll happys = happy[k-1]-happy[0];
//     ll shames = shame[k-1]-shame[0];
//     int index=0;
//     for(int left=0,right=0;right<n;)
//     {
//         // while(right -left<n)
//         right++;
//         if(right-left==k-1)
//         {
//             ll curr_happy=happy[right+k-1]-happy[right];
//             ll curr_shame=shame[right+k-1]-shame[right];
//             if(curr_happy>happys)
//             {
//                 happys = curr_happy;
//                 shames = curr_shame;
//                 index = right-1;
//             }
//             else if(curr_happy==happys)
//             {
//                 if(curr_shame<shames)
//                 {
//                     shames = curr_shame;
//                     index=right-1;
//                 }
//             }
//             left=right;
//         }
//     }
//     cout<<index<<endl;
//     return 0;
// }

// int main()
// {
//     cin>>n>>k;
//     ll happy[n],shame[n];
//     //分开读入happy和shame
//     for(int i=0;i<n;i++)cin>>happy[i];
//     for(int i=0;i<n;i++)cin>>shame[i];
//     //滑动窗口
//     ll left=0,right=0;
//     ll hSum=0,sSum=0,hMax=0,sMin=0,begin=0;

//     while(right<n)
//     {
//         hSum+=happy[right];
//         sSum+=shame[right];
//         while(right-left+1>k)
//         {
//             hSum-=happy[left];
//             sSum-=shame[left];
//             left++;
//         }
//         if(right-left+1==k)
//         {
//             if(hSum>hMax || hSum==hMax&&sSum<sMin)
//             {
//                 begin=left;
//                 hMax=hSum;
//                 sMin=sSum;
//             }
//         }
//         right++;
//     }
//     cout<<begin+1<<endl;
//     return 0;
// }

// 思维 思维 思维
// 思维最重要，要想出一个简单可行的方法在开始解决问题，边写边想只会越来越混乱
// 学的是解决问题的思维
//  int main()
//  {
//    ll a,b,n;
//    cin>>a>>b>>n;
//    ll count=5*a+2*b;
//    ll ans=7*(n/count);
//    n%=count;
//    double day[]={a,a,a,a,a,b,b};
//    for(int i=0;n>0;i++)
//    {
//      n-=day[i];
//      ans++;
//    }
//    cout<<ans<<endl;
//    return 0;
//  }

// ll gcd(ll a,ll b)
// {
//     if(b==0)return a;
//     else return gcd(b,a%b);
// }
// ll lcm(ll a,ll b)
// {
//     return a*b/gcd(a,b);
// }
// int main()
// {
//     ll a=233333,b=343720;
//     ll t=1;
//     while(1)
//     {
//         if((t*15)%b==0&&(t*17)%a==0)break;
//         t++;
//     }
//     printf("%.2f",2*sqrt(15*15*t*t+17*17*t*t));
//     return 0;
// }

// const int N = 2e5 + 10;
// int n, m;
// int a[N];
// int b[N];
// int main()
// {
//     cin >> n >> m;
//     for (int i = 1; i <= n; i++)
//         cin >> a[i];
//     b[1] = a[1];
//     // 构建差分数组
//     for (int i = 2; i <= n; i++)
//         b[i] = a[i] - a[i - 1];
//     while (m--)
//     {
//         int l, r, d;
//         cin >> l >> r >> d;
//         b[l] += d;
//         if (r < n)
//             b[r + 1] -= d;
//     }
//     a[1] = b[1];
//     cout<<a[1]<<" ";
//     for (int i = 2; i <= n; i++)
//     {
//         a[i] = a[i - 1] + b[i];
//         cout << a[i] << " ";
//     }
//     cout << endl;
//     return 0;
// }
const int N=1e5+10;
int a[N],b[N];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        b[i]=a[i]-a[i-1];
    }
    long long ans=0;
    for(int i=1;i<=n;i++)
    {
        if(i==1)
        {
            ans+=b[i]-1;
        }
        else
        {
            if(b[i]>0)ans+=b[i];
        }
    }
    cout<<ans<<endl;
    return 0;
}